// 发送邮件验证码
// nodemailer模块用于发送邮件
// 官方文档:https://nodemailer.com/about/
// 1.安装: npm i nodemailer
// 2.导入: require('nodemailer')
// 3.使用nodemailer发送邮件
let nodemailer = require('nodemailer')

function sendMail(sub,body,email){
    // 创建 Transport 对象,用来发送邮件
    let transporter = nodemailer.createTransport({
        host: "smtp.qq.com",// 发送者的邮箱主机配置(看下方 配置1)
        port: 465,// 端口号
        secure: true, // 端口为465时设置为true,其他端口号设置为false
        auth: {
            user: '99835885@qq.com', // 发送者的邮箱地址(网址管理员的邮箱地址)
            pass: 'cisegjjifjdybiii', // 发送者邮箱的SMPT授权码(看下方 配置2)
        },
    })

    // 配置1:
    // node_modules/nodemailer/lib/well-known/services.json
    // 打开services.json文件
    // 搜索 qq
    // "QQ": {
    //     "domains": ["qq.com"],
    //     "host": "smtp.qq.com",
    //     "port": 465,
    //     "secure": true
    // },

    // 配置2:
    // 进入 管理员邮箱 主页
    // 点击 设置
    // 选择 账户
    // 开启服务：POP3/SMTP服务 点击 开启
    // 需要发送短信 进行身份验证
    // 点击 我已发送
    // 复制 SMPT 授权码,添加到pass位置

    // 发送邮件的配置信息
    let info = {
        from: '"管理员 👻" <99835885@qq.com>', // 管理员邮箱地址
        to: email, // 邮件接收者列表
        subject: sub, // 邮件主题
        text: body, // 文本格式的邮件内容(邮件内容二选一)
        // html: "<b>Hello world?</b>", // html格式的邮件内容(邮件内容二选一)
    }

    // 发送邮件(异步任务)
    return new Promise((resolve,reject)=>{
        transporter.sendMail(info,(err)=>{// 异步任务的回调函数
            if (err) {
                console.log( '邮件发送失败',err )
                reject('邮件发送失败')
            } else {
                console.log( '邮件发送成功',err )
                resolve('邮件发送成功')
            }
        })
    })
}

// 暴露模块内容
module.exports = {sendMail}
